package br.com.gaspar.mb;

import gov.sefaz.utils.exception.BaseException;

import javax.ejb.EJB;
import javax.inject.Inject;
import javax.inject.Named;

import org.picketlink.idm.api.IdentitySession;
import org.picketlink.idm.common.exception.IdentityException;

import br.com.gaspar.bo.iface.IGasparBO;

@Named("LoginMB")
public class LoginMB{
	
	private String usuario;
	
	private String senha;
	
	private String confirmacao;
	
	@SuppressWarnings("rawtypes")
	@EJB
	private IGasparBO bo;
	
	@Inject
	private IdentitySession identitySession;

	public IdentitySession getIdentitySession() {
		return identitySession;
	}

	public void setIdentitySession(IdentitySession identitySession) {
		this.identitySession = identitySession;
	}
	
	@SuppressWarnings("unchecked")
	public String criarUsuario() throws IdentityException, BaseException{
		/*Papel papel = new Papel();
        papel.setNome("admin");
        bo.gravar(papel);
        
        TipoIdentificacao tipoIdUsu = new TipoIdentificacao();
        tipoIdUsu.setNome("USER");
        bo.gravar(tipoIdUsu);
        
        TipoIdentificacao GROUP = new TipoIdentificacao();
        GROUP.setNome("GROUP");
        bo.gravar(GROUP);
        
        Identificacao usu = new Identificacao();
        usu.setNome("admin");
        usu.setTipoIdentificacao(tipoIdUsu);
        bo.gravar(usu);
        
        Identificacao headOffice = new Identificacao();
        headOffice.setNome("Escritório");
        headOffice.setTipoIdentificacao(GROUP);
        bo.gravar(headOffice);
        
        TipoCredencial senha = new TipoCredencial();
        senha.setNome("PASSWORD");
        bo.gravar(senha);
        
        Credencial usuSenha = new Credencial();
        usuSenha.setIdentificacao(usu);
        usuSenha.setTipoCredencial(senha);
        usuSenha.setValor("adminadmin");
		bo.gravar(usuSenha);
		
		TipoRelacionamento tipoRela = new TipoRelacionamento();
        tipoRela.setNome("JBOSS_IDENTITY_MEMBERSHIP");
        bo.gravar(tipoRela);
        
        TipoRelacionamento tipoRelaRole = new TipoRelacionamento();
        tipoRelaRole.setNome("JBOSS_IDENTITY_ROLE");
        bo.gravar(tipoRelaRole);
        
        // Object relationships
        Relacionamento demoAdminRole = new Relacionamento();
        demoAdminRole.setNome("admin");
        demoAdminRole.setTipoRelacionamento(tipoRelaRole);
        demoAdminRole.setDe(headOffice);
        demoAdminRole.setPara(usu);
        bo.gravar(demoAdminRole);*/
        
		/*if (senha == null || !senha.equals(confirmacao)) {
            // TODO - add control message
            //StatusMessages.instance().addToControl("password", "Passwords do not match");
            return "failure";
        }

        User user = identitySession.getPersistenceManager().createUser(usuario);
        identitySession.getAttributesManager().updatePassword(user, senha);*/

        return "sucesso";
	}

	public String getUsuario() {
		return usuario;
	}

	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public String getConfirmacao() {
		return confirmacao;
	}

	public void setConfirmacao(String confirmacao) {
		this.confirmacao = confirmacao;
	}

	public IGasparBO getBo() {
		return bo;
	}

	public void setBo(IGasparBO bo) {
		this.bo = bo;
	}
}
